<?php

namespace app\cps\service;

use app\model\DebugLogs;

/**
 * debug跟踪类。
 * Class DebugLosService
 * @package app\cps\service
 */
class DebugLosService
{
    private $debugLogs;

    public function __construct(DebugLogs $debugLogs)
    {
        $this->debugLogs = $debugLogs;
    }

    /**
     * 记录某些业务场景的下的错误定位的方法.
     * @param array $params
     * @param string $debug_scene
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public function save($params = [], $debug_scene = '')
    {
        if ($params && $debug_scene == 'pay_data_callback') { // 支付业务数据回传场景

            $link_id = $params['link_id'] ?? 0;
            $order_id = $params['order_id'] ?? 0;

            //$debugLogsModel = new DebugLogs();
            // 定义查询条件(支付业务数据回传场景只需要按此2个字段来查询。推广链接和推广链接产生的订单。)
            $where = ['link_id' => $link_id, 'order_id' => $order_id];
            $row = $this->debugLogs->getInfoByWhere($where);

            $params['debug_scene'] = '支付业务数据回传';

            if ($row) { // 检查是否有记录
                $params['id'] = $row['id'];
            }

            // 至于是修改还是新增就是在edit里面判断了。此地无需关注返回结果.
            $this->debugLogs->edit($params);
        }

        // 抖音实时数据获取投放金额数据
        if ($params && $debug_scene == 'invest_data_collection') {
            $this->debugLogs->edit($params);
        }
    }
}